package com.shop.shoppingmall.service;

import com.alibaba.fastjson.JSONObject;
import com.shop.shoppingmall.entity.ShBackUser;
import com.shop.shoppingmall.entity.ShUser;
import com.shop.shoppingmall.util.api.vo.Result;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * (ShBackUser)表服务接口
 *
 * @author makejava
 * @since 2020-09-16 16:45:20
 */
public interface ShBackUserService {

    /**
     * 通过ID查询单条数据
     *
     * @param userId 主键
     * @return 实例对象
     */
    ShBackUser queryById(String userId);

    /**
     * 新增数据
     *
     * @param shBackUser 实例对象
     * @return 实例对象
     */
    ShBackUser insert(ShBackUser shBackUser);

    /**
     * 修改数据
     *
     * @param shBackUser 实例对象
     * @return 实例对象
     */
    ShBackUser update(ShBackUser shBackUser);

    /**
     * 通过主键删除数据
     *
     * @param userId 主键
     * @return 是否成功
     */
    boolean deleteById(String userId);

    /**
     * 后台用户注册
     * @return
     */
    Result backRegister(JSONObject jsonObject);

    Result<?> checkUserIsEffective(ShBackUser shBackUser);

    /**
     * 后台用户登录
     * @param map
     * @return
     */
    Result userLogin(Map map);

    /**
     * 查询首页的相关信息
     * @return
     */
    Result selectHomeAll();

    /**
     * 修改后台用户信息
     * @return
     */
    Result updateShUserByUserId(ShBackUser shBackUser);

    /**
     * 后台查询用户的所有信息
     * @param map
     * @return
     */
    Result selectQueryAll(Map map);


    /**
     * 修改密码
     * @param
     * @param oldpassword 旧密码
     * @param newpassword 新密码
     * @param confirmpassword 确认密码
     * @return
     */
    Result resetPassword(HttpServletRequest request, String oldpassword, String newpassword, String confirmpassword);

    /**
     * 重置密码
     * @param
     * @param password
     * @return
     */
    Result chongZhiPassword(String phone,String loginName,String smscode,String password);


    Result selectByUserId(String userId);

    Result queryCount(String merchantId);
    Result selectOrderS(String merchantId);
}
